/**
 * Copyright (c) 2000-2012 Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package com.vportal.portlet.vcms.service.http;

import com.liferay.portal.kernel.log.Log;
import com.liferay.portal.kernel.log.LogFactoryUtil;

import com.vportal.portlet.vcms.service.VcmsTypeServiceUtil;

import java.rmi.RemoteException;

/**
 * <p>
 * This class provides a SOAP utility for the
 * {@link com.vportal.portlet.vcms.service.VcmsTypeServiceUtil} service utility. The
 * static methods of this class calls the same methods of the service utility.
 * However, the signatures are different because it is difficult for SOAP to
 * support certain types.
 * </p>
 *
 * <p>
 * ServiceBuilder follows certain rules in translating the methods. For example,
 * if the method in the service utility returns a {@link java.util.List}, that
 * is translated to an array of {@link com.vportal.portlet.vcms.model.VcmsTypeSoap}.
 * If the method in the service utility returns a
 * {@link com.vportal.portlet.vcms.model.VcmsType}, that is translated to a
 * {@link com.vportal.portlet.vcms.model.VcmsTypeSoap}. Methods that SOAP cannot
 * safely wire are skipped.
 * </p>
 *
 * <p>
 * The benefits of using the SOAP utility is that it is cross platform
 * compatible. SOAP allows different languages like Java, .NET, C++, PHP, and
 * even Perl, to call the generated services. One drawback of SOAP is that it is
 * slow because it needs to serialize all calls into a text format (XML).
 * </p>
 *
 * <p>
 * You can see a list of services at
 * http://localhost:8080/api/secure/axis. Set the property
 * <b>axis.servlet.hosts.allowed</b> in portal.properties to configure
 * security.
 * </p>
 *
 * <p>
 * The SOAP utility is only generated for remote services.
 * </p>
 *
 * @author    hai
 * @see       VcmsTypeServiceHttp
 * @see       com.vportal.portlet.vcms.model.VcmsTypeSoap
 * @see       com.vportal.portlet.vcms.service.VcmsTypeServiceUtil
 * @generated
 */
public class VcmsTypeServiceSoap {
	public static com.vportal.portlet.vcms.model.VcmsTypeSoap addType(
		long groupId, long companyId, long plid, java.lang.String code,
		java.lang.String name, java.lang.String description,
		java.lang.String language, java.lang.String[] communityPermissions,
		java.lang.String[] guestPermissions) throws RemoteException {
		try {
			com.vportal.portlet.vcms.model.VcmsType returnValue = VcmsTypeServiceUtil.addType(groupId,
					companyId, plid, code, name, description, language,
					communityPermissions, guestPermissions);

			return com.vportal.portlet.vcms.model.VcmsTypeSoap.toSoapModel(returnValue);
		}
		catch (Exception e) {
			_log.error(e, e);

			throw new RemoteException(e.getMessage());
		}
	}

	public static com.vportal.portlet.vcms.model.VcmsTypeSoap addType(
		long groupId, long companyId, long plid, java.lang.String code,
		java.lang.String name, java.lang.String description,
		java.lang.String language, java.lang.Boolean addCommunityPermissions,
		java.lang.Boolean addGuestPermissions,
		java.lang.String[] communityPermissions,
		java.lang.String[] guestPermissions) throws RemoteException {
		try {
			com.vportal.portlet.vcms.model.VcmsType returnValue = VcmsTypeServiceUtil.addType(groupId,
					companyId, plid, code, name, description, language,
					addCommunityPermissions, addGuestPermissions,
					communityPermissions, guestPermissions);

			return com.vportal.portlet.vcms.model.VcmsTypeSoap.toSoapModel(returnValue);
		}
		catch (Exception e) {
			_log.error(e, e);

			throw new RemoteException(e.getMessage());
		}
	}

	public static void addTypeResources(java.lang.String TypeId,
		boolean addCommunityPermissions, boolean addGuestPermissions)
		throws RemoteException {
		try {
			VcmsTypeServiceUtil.addTypeResources(TypeId,
				addCommunityPermissions, addGuestPermissions);
		}
		catch (Exception e) {
			_log.error(e, e);

			throw new RemoteException(e.getMessage());
		}
	}

	public static void addTypeResources(
		com.vportal.portlet.vcms.model.VcmsType Type,
		boolean addCommunityPermissions, boolean addGuestPermissions)
		throws RemoteException {
		try {
			VcmsTypeServiceUtil.addTypeResources(Type, addCommunityPermissions,
				addGuestPermissions);
		}
		catch (Exception e) {
			_log.error(e, e);

			throw new RemoteException(e.getMessage());
		}
	}

	public static void addTypeResources(java.lang.String TypeId,
		java.lang.String[] communityPermissions,
		java.lang.String[] guestPermissions) throws RemoteException {
		try {
			VcmsTypeServiceUtil.addTypeResources(TypeId, communityPermissions,
				guestPermissions);
		}
		catch (Exception e) {
			_log.error(e, e);

			throw new RemoteException(e.getMessage());
		}
	}

	public static void addTypeResources(
		com.vportal.portlet.vcms.model.VcmsType Type,
		java.lang.String[] communityPermissions,
		java.lang.String[] guestPermissions) throws RemoteException {
		try {
			VcmsTypeServiceUtil.addTypeResources(Type, communityPermissions,
				guestPermissions);
		}
		catch (Exception e) {
			_log.error(e, e);

			throw new RemoteException(e.getMessage());
		}
	}

	public static com.vportal.portlet.vcms.model.VcmsTypeSoap updateType(
		java.lang.String typeId, long groupId, long companyId,
		java.lang.String code, java.lang.String name,
		java.lang.String description, java.lang.String language)
		throws RemoteException {
		try {
			com.vportal.portlet.vcms.model.VcmsType returnValue = VcmsTypeServiceUtil.updateType(typeId,
					groupId, companyId, code, name, description, language);

			return com.vportal.portlet.vcms.model.VcmsTypeSoap.toSoapModel(returnValue);
		}
		catch (Exception e) {
			_log.error(e, e);

			throw new RemoteException(e.getMessage());
		}
	}

	public static void deleteType(java.lang.String typeId)
		throws RemoteException {
		try {
			VcmsTypeServiceUtil.deleteType(typeId);
		}
		catch (Exception e) {
			_log.error(e, e);

			throw new RemoteException(e.getMessage());
		}
	}

	public static void deleteTypes(java.lang.String[] typeIds)
		throws RemoteException {
		try {
			VcmsTypeServiceUtil.deleteTypes(typeIds);
		}
		catch (Exception e) {
			_log.error(e, e);

			throw new RemoteException(e.getMessage());
		}
	}

	public static com.vportal.portlet.vcms.model.VcmsTypeSoap getType(
		java.lang.String typeId) throws RemoteException {
		try {
			com.vportal.portlet.vcms.model.VcmsType returnValue = VcmsTypeServiceUtil.getType(typeId);

			return com.vportal.portlet.vcms.model.VcmsTypeSoap.toSoapModel(returnValue);
		}
		catch (Exception e) {
			_log.error(e, e);

			throw new RemoteException(e.getMessage());
		}
	}

	public static com.vportal.portlet.vcms.model.VcmsTypeSoap getTypeByS_C(
		long groupId, java.lang.String code) throws RemoteException {
		try {
			com.vportal.portlet.vcms.model.VcmsType returnValue = VcmsTypeServiceUtil.getTypeByS_C(groupId,
					code);

			return com.vportal.portlet.vcms.model.VcmsTypeSoap.toSoapModel(returnValue);
		}
		catch (Exception e) {
			_log.error(e, e);

			throw new RemoteException(e.getMessage());
		}
	}

	public static com.vportal.portlet.vcms.model.VcmsType[] getTypesByS_L(
		long groupId, java.lang.String language) throws RemoteException {
		try {
			java.util.List<com.vportal.portlet.vcms.model.VcmsType> returnValue = VcmsTypeServiceUtil.getTypesByS_L(groupId,
					language);

			return returnValue.toArray(new com.vportal.portlet.vcms.model.VcmsType[returnValue.size()]);
		}
		catch (Exception e) {
			_log.error(e, e);

			throw new RemoteException(e.getMessage());
		}
	}

	public static com.vportal.portlet.vcms.model.VcmsType[] getTypesByS_L(
		long groupId, java.lang.String language, int start, int end)
		throws RemoteException {
		try {
			java.util.List<com.vportal.portlet.vcms.model.VcmsType> returnValue = VcmsTypeServiceUtil.getTypesByS_L(groupId,
					language, start, end);

			return returnValue.toArray(new com.vportal.portlet.vcms.model.VcmsType[returnValue.size()]);
		}
		catch (Exception e) {
			_log.error(e, e);

			throw new RemoteException(e.getMessage());
		}
	}

	public static int countTypesByS_L(long groupId, java.lang.String language)
		throws RemoteException {
		try {
			int returnValue = VcmsTypeServiceUtil.countTypesByS_L(groupId,
					language);

			return returnValue;
		}
		catch (Exception e) {
			_log.error(e, e);

			throw new RemoteException(e.getMessage());
		}
	}

	private static Log _log = LogFactoryUtil.getLog(VcmsTypeServiceSoap.class);
}